rmarkdown::render("Analise Transporte.Rmd") (ou knit no
RStudio)sessionInfo() no fim do
documento.renv::init() e
renv::snapshot().# Ajustes globais (não altera sua análise)
knitr::opts_chunk$set(fig.width = 6, fig.height = 4, dpi = 150, echo = TRUE)
set.seed(123)
| Nome | Arquivo local | Origem oficial (link) | Data de acesso | |
|---|---|---|---|---|
| Censo | censo.xlsx |
_https://www.data.rio/apps/0486a2d8fdb241d68395c24e662c48bb/explore_ | 2025-10-04 | |
| Estações | estacoes.xlsx |
_https://www.data.rio/documents/7f3d332baf2f499abc6a0742fce56bec/about_ | 2025-10-04 | |
| Massa salarial | massa_salarial.xlsx |
_https://www.data.rio/documents/f6bb333c4a9b4327bec7225c450e41ee/about_ | 2025-10-04 | |
| Shapefile estações | estacoes_metro/Estações_Metrô.shp |
_https://www.data.rio/datasets/7a0b22723c5a458faaae79f046163504_19/explore_ | 2025-10-04 | |
| Shapefile trajetos | trajetos_metro/Trajetos_Metrô.shp |
_https://www.data.rio/datasets/df17c658dc9c4c3b82b964822f60b98f_18/explore_ | 2025-10-04 |
Validação (resuma aqui): Foram coletados bases de dados disponibilizados pelo DataRio com o objetivo de ter um panorâma sobre a distribuição do fluxo de passageiros nas linhas de metrô no municipio do Rio de Janeiro.
# Definir o mirror do CRAN (Brasil ou outro confiável)
options(repos = c(CRAN = "https://cran.r-project.org"))
knitr::opts_knit$set(root.dir = dirname(rstudioapi::getActiveDocumentContext()$path))
knitr::opts_chunk$set(echo = TRUE)
setwd(dirname(rstudioapi::getActiveDocumentContext()$path))
library(readr)
library(readxl)
library(janitor)
library(dplyr)
censo <- read_excel("censo.xlsx")
estacoes <- read_excel("estacoes.xlsx")
massa <- read_excel("massa_salarial.xlsx")
As três bases utilizadas — Censo, Estações e Massa Salarial — possuem informações complementares sobre os bairros do Rio de Janeiro. Cada uma apresenta uma dimensão específica:
Para realizar as análises, foi necessário integrar essas três tabelas em uma única base consolidada. O campo comum entre elas é o nome do bairro, que funciona como chave de junção.
Desse modo, o dataframe final nosso ficou com as seguintes colunas de cada tabela:
| Nome | Origem |
|---|---|
| Estacao | estacoes.xlsx |
| Bairro | estacoes.xlsx |
| Linha | estacoes.xlsx |
| Passageiros_2022 | estacoes.xlsx |
| Populacao_2022 | censo.xlsx |
| Domicilios_2022 | censo.xlsx |
| AP | massa_salarial.xlsx |
| RP | massa_salarial.xlsx |
| GR | massa_salarial.xlsx |
| Massa_salarial_2021 | massa_salarial.xlsx |
names(estacoes) <- janitor::make_clean_names(names(estacoes))
df <- estacoes[, c("estacao", "bairro", "linha", "x2022")]
df <- df %>%
inner_join(
censo %>% select(bairro = nome, Total_de_pessoas_2022, Total_de_domicilios_2022),
by = "bairro"
)
df <- df %>%
inner_join(
massa %>% select(bairro = Bairros, AP, RP, Grupo, `2021`),
by = "bairro"
)
colnames(df) <- c(
"Estacao", "Bairro", "Linha", "Passageiros_2022",
"Populacao_2022", "Domicilios_2022",
"AP", "RP", "GR", "Massa_salarial_2021"
)
df$Passageiros_2022 <- df$Passageiros_2022 * 1000
library(gt)
df %>%
head(5) %>%
gt()
| Estacao | Bairro | Linha | Passageiros_2022 | Populacao_2022 | Domicilios_2022 | AP | RP | GR | Massa_salarial_2021 |
|---|---|---|---|---|---|---|---|---|---|
| Uruguai | Tijuca | 1 | 4395000 | 142326 | 70928 | 2 | 2 | 8 | 102001787 |
| Saens Peña | Tijuca | 1 | 5320000 | 142326 | 70928 | 2 | 2 | 8 | 102001787 |
| São Francisco Xavier | Tijuca | 1 | 1914000 | 142326 | 70928 | 2 | 2 | 8 | 102001787 |
| Afonso Pena | Tijuca | 1 | 2080000 | 142326 | 70928 | 2 | 2 | 8 | 102001787 |
| Estácio | Estácio | 1 | 1858000 | 23260 | 8894 | 1 | 1 | 3 | 15726953 |
A etapa de análise teve como ponto de partida a compreensão do funcionamento e da distribuição das linhas do metrô do Rio de Janeiro, observando como a presença e o fluxo de passageiros nas estações se relacionam com características socioeconômicas dos bairros.
A ideia central foi avaliar se fatores demográficos e
econômicos ajudam a explicar a variação no número de
passageiros.
Para isso, três dimensões principais foram consideradas:
A análise foi conduzida buscando correlações entre essas variáveis, especialmente:
Essas correlações foram representadas visualmente em gráficos de dispersão e, quando necessário, acompanhadas de linhas de tendência linear (modelo de regressão) para facilitar a leitura das relações entre as variáveis.
| Variável | Média | Mediana | Mínimo | Máximo |
|---|---|---|---|---|
| Passageiros_2022 | 4191950 | 3180000 | 566000 | 12573000 |
| Populacao_2022 | 52298 | 26840 | 4745 | 142326 |
| Massa_salarial_2021 | 391553196 | 83199203 | 1116655 | 3007140817 |
O gráfico acima apresenta a relação entre a população total dos bairros e a quantidade de passageiros embarcados nas estações de metrô localizadas nesses mesmos bairros, considerando o ano de 2022.
Visualmente, observa-se uma tendência positiva, porém
fraca, representada pela linha de regressão levemente
ascendente.
O coeficiente de correlação calculado foi de aproximadamente
0,22, o que indica uma associação positiva de
baixa intensidade entre as duas variáveis.
Em termos práticos, isso significa que bairros mais populosos
tendem a registrar maior fluxo de passageiros, mas essa relação
não é linear nem determinante.
Entre os pontos mais distantes na lateral direita do gráfico, destaca-se
o bairro da Tijuca, que combina alta
população com grande volume de
embarques.
Essa região concentra várias estações importantes (como Saens Peña,
Uruguai e Afonso Pena), além de conexões com linhas de ônibus, o que
ajuda a explicar seu valor atípico.
Outros fatores também contribuem para a dispersão dos pontos e a baixa correlação geral, como:
Em síntese, a análise mostra que, embora a população influencie o uso do metrô, o fluxo de passageiros depende fortemente da função urbana do bairro — no caso da Tijuca, um centro residencial e comercial de alta densidade e boa conectividade.
O gráfico acima apresenta a relação entre a massa salarial total dos bairros — isto é, a soma dos salários pagos a trabalhadores formais — e a quantidade de passageiros embarcados nas estações de metrô localizadas nesses mesmos bairros, no ano de 2022.
Diferentemente da análise anterior, observa-se aqui uma
correlação positiva mais forte, com coeficiente de
aproximadamente 0,51.
A linha de tendência possui inclinação acentuada, indicando que
bairros com maior massa salarial tendem a registrar volumes
significativamente maiores de embarques.
Essa relação sugere que a atividade econômica e o poder
aquisitivo local influenciam diretamente o fluxo de
passageiros.
Bairros que concentram empresas, comércio e serviços — portanto, maior
massa salarial — atraem trabalhadores e consumidores de outras regiões,
gerando movimentos pendulares diários que elevam a
demanda por transporte público.
Entre os pontos mais afastados na lateral direita do gráfico estão
bairros de alta renda e concentração de empregos, como
o Centro, que funcionam como polo econômico e
de convergência de transporte urbano.
Essas áreas não apenas abrigam residentes com rendimentos elevados, mas
também recebem um grande contingente de trabalhadores de outras zonas da
cidade, o que explica seu destaque no gráfico.
Em contrapartida, bairros com massa salarial mais baixa mantêm fluxos mais modestos, ainda que possam ter populações expressivas — reforçando a ideia de que a dinâmica econômica local tem maior peso que o tamanho populacional na determinação do volume de passageiros.
Em síntese, os resultados indicam que a massa salarial apresenta correlação mais robusta com o uso do metrô do que a população, evidenciando que o transporte metroviário do Rio de Janeiro está fortemente associado à concentração de atividades econômicas e aos centros de emprego da cidade.
Note that the echo = FALSE parameter was added to the
code chunk to prevent printing of the R code that generated the
plot.
A tabela consolidada utilizada nesta análise foi construída a partir
da integração das três bases originais (estacoes.xlsx,
censo.xlsx e massa_salarial.xlsx), resultando
em dez variáveis principais:
| Variável | Descrição |
|---|---|
| Estacao | Nome da estação de metrô considerada na análise. Cada linha do conjunto de dados representa uma estação localizada em determinado bairro. |
| Bairro | Nome do bairro onde a estação está localizada. Utilizado como chave de integração entre as diferentes bases. |
| Linha | Linha do metrô à qual a estação pertence (ex.: Linha 1 – Laranja, Linha 2 – Verde). |
| Passageiros_2022 | Total de passageiros embarcados na estação ao longo de 2022 (em milhares). Representa o fluxo operacional do metrô. |
| Populacao_2022 | População residente no bairro em 2022, conforme dados censitários. Utilizada para avaliar a relação entre densidade populacional e volume de passageiros. |
| Domicilios_2022 | Número de domicílios particulares permanentes no bairro em 2022. Serve como indicador complementar de ocupação residencial. |
| AP | Código de Área de Planejamento (AP) do município do Rio de Janeiro, utilizado pela Prefeitura para fins de planejamento urbano. |
| RP | Código da Região de Planejamento (RP), subdivisão territorial que agrupa bairros com características semelhantes. |
| GR | Código de Grupo Regional, relacionado a agrupamentos administrativos de bairros para análise socioeconômica. |
| Massa_salarial_2021 | Soma dos salários pagos a trabalhadores formais no bairro durante o ano de 2021 (em reais). Indicador de atividade econômica e renda. |
Essas variáveis foram harmonizadas por meio da chave “Bairro”, após limpeza e padronização dos nomes, possibilitando a análise integrada entre infraestrutura de transporte, população residente e dinâmica econômica dos bairros do Rio de Janeiro.
sessionInfo()
## R version 4.5.1 (2025-06-13 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 11 x64 (build 26100)
##
## Matrix products: default
## LAPACK version 3.12.1
##
## locale:
## [1] LC_COLLATE=Portuguese_Brazil.utf8 LC_CTYPE=Portuguese_Brazil.utf8
## [3] LC_MONETARY=Portuguese_Brazil.utf8 LC_NUMERIC=C
## [5] LC_TIME=Portuguese_Brazil.utf8
##
## time zone: America/Sao_Paulo
## tzcode source: internal
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] scales_1.4.0 plotly_4.11.0 sf_1.0-21 ggplot2_4.0.0 geobr_1.9.1
## [6] knitr_1.50 tibble_3.3.0 gt_1.0.0 dplyr_1.1.4 janitor_2.2.1
## [11] readxl_1.4.5 readr_2.1.5
##
## loaded via a namespace (and not attached):
## [1] gtable_0.3.6 xfun_0.52 bslib_0.9.0 htmlwidgets_1.6.4
## [5] lattice_0.22-7 tzdb_0.5.0 crosstalk_1.2.2 vctrs_0.6.5
## [9] tools_4.5.1 generics_0.1.4 curl_7.0.0 proxy_0.4-27
## [13] pkgconfig_2.0.3 Matrix_1.7-3 KernSmooth_2.23-26 data.table_1.17.8
## [17] RColorBrewer_1.1-3 S7_0.2.0 lifecycle_1.0.4 compiler_4.5.1
## [21] farver_2.1.2 stringr_1.5.1 snakecase_0.11.1 htmltools_0.5.8.1
## [25] class_7.3-23 sass_0.4.10 yaml_2.3.10 lazyeval_0.2.2
## [29] pillar_1.11.0 jquerylib_0.1.4 tidyr_1.3.1 classInt_0.4-11
## [33] cachem_1.1.0 nlme_3.1-168 tidyselect_1.2.1 digest_0.6.37
## [37] stringi_1.8.7 purrr_1.1.0 labeling_0.4.3 splines_4.5.1
## [41] fastmap_1.2.0 grid_4.5.1 cli_3.6.5 magrittr_2.0.3
## [45] e1071_1.7-16 withr_3.0.2 lubridate_1.9.4 timechange_0.3.0
## [49] rmarkdown_2.29 httr_1.4.7 cellranger_1.1.0 hms_1.1.3
## [53] evaluate_1.0.5 viridisLite_0.4.2 mgcv_1.9-3 rlang_1.1.6
## [57] Rcpp_1.1.0 glue_1.8.0 DBI_1.2.3 xml2_1.4.0
## [61] rstudioapi_0.17.1 jsonlite_2.0.0 R6_2.6.1 fs_1.6.6
## [65] units_0.8-7